<template>
  <view class="container">
    <view class="form">
      <text class="title">注册</text>
      <input class="input" placeholder="请输入用户名（3-20位，字母/数字/下划线）" v-model="username" />
      <input class="input" placeholder="请输入密码（至少6位）" type="password" v-model="password" />
      <input class="input" placeholder="请确认密码" type="password" v-model="confirmPassword" />
      <button class="btn" type="primary" @click="handleRegister">注册</button>
      <view class="link">
        <text>已有账号？</text>
        <!-- 跳转到登录页 -->
        <navigator url="/pages/tabBar/tabcompage/login/login">去登录</navigator>
      </view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: '',
      confirmPassword: ''
    };
  },
  methods: {
    handleRegister() {
      // 1. 表单基础校验
      if (!this.username || !this.password || !this.confirmPassword) {
        uni.showToast({
          title: '请输入完整信息',
          icon: 'none'
        });
        return;
      }
      // 用户名格式校验（匹配Accounts的pattern）
      const usernameReg = /^[a-zA-Z0-9_]{3,20}$/;
      if (!usernameReg.test(this.username)) {
        uni.showToast({
          title: '用户名只能包含字母、数字、下划线，长度3-20位',
          icon: 'none'
        });
        return;
      }
      // 密码长度校验（匹配Accounts的minLength）
      if (this.password.length < 6) {
        uni.showToast({
          title: '密码长度不能少于6位',
          icon: 'none'
        });
        return;
      }
      if (this.password !== this.confirmPassword) {
        uni.showToast({
          title: '两次输入密码不一致',
          icon: 'none'
        });
        return;
      }

      // 2. 调用原有addUser云函数（传name字段，适配Accounts）
      uniCloud.callFunction({
        name: 'addUser', // 保持原有云函数名称
        data: {
          name: this.username, // 传name字段，适配Accounts的name属性
          password: this.password
        },
        // 调用成功
        success: (res) => {
          console.log("addUser 调用成功：", res);
          uni.showToast({
            title: '注册成功',
            icon: 'success'
          });
          // 注册成功后跳转登录页
          setTimeout(() => {
            uni.navigateTo({
              url: "/pages/tabBar/tabcompage/login/login"
            });
          }, 1500);
        },
        // 调用失败
        fail: (err) => {
          console.error("addUser 调用失败：", err);
          uni.showToast({
            title: '注册失败，请重试',
            icon: 'none'
          });
        }
      });
    }
  }
};
</script>

<style>
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background-color: #f5f5f5;
}
.form {
  width: 80%;
  background-color: #fff;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.title {
  font-size: 20px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
}
.input {
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 10px;
  margin-bottom: 15px;
  width: 100%;
}
.btn {
  width: 100%;
  margin-bottom: 15px;
}
.link {
  text-align: center;
}
.link text, .link navigator {
  font-size: 14px;
}
.link navigator {
  color: #007aff;
}
</style>